<template>
	<div class="app-container">
		<!-- 顶部 header区域 -->
		<mt-header fixed title="黑马程序员vue项目">
  			<span slot="left" @click="goBack" v-show="flag">
  			  <mt-button icon="back">返回</mt-button>
  			</span>
		</mt-header>

		<!-- 中间 路由router-view区域  有动画过渡效果  用transition包裹起来有动画的组件 同时再增加2组类-->
		<transition>
			<router-view></router-view>
		</transition>
		<!-- 底部 tabbar区域 -->
		<nav class="mui-bar mui-bar-tab"> 
			<router-link class="mui-tab-item-zyp" to="/home">
				<span class="mui-icon mui-icon-home"></span>
				<span class="mui-tab-label">首页</span>
			</router-link>
			<router-link class="mui-tab-item-zyp" to="/member">
				<span class="mui-icon mui-icon-contact"></span>
				<span class="mui-tab-label">会员</span>
			</router-link>
			<router-link class="mui-tab-item-zyp" to="/shopcar">
				<!-- 这里的 mui-icon不能去掉 -->
				<span class="mui-icon mui-icon-extra mui-icon-extra-cart"><span class="mui-badge" id="badge">{{ $store.getters.getAllCount }}</span></span>
				<span class="mui-tab-label">购物车</span>
			</router-link>
			<router-link class="mui-tab-item-zyp" to="/search">
				<span class="mui-icon mui-icon-search"></span>
				<span class="mui-tab-label">搜索</span>
			</router-link>
		</nav>	
	</div>
</template>		

<script>
	export default {
		data() {
			return {
				flag: false
			}
		},
		created() {
			// 解决的是 当刷新非首页的页面时 由于路由地址未发生改变 下边的watch属性监听不到
			// 就会出现没有返回按钮的情况 因为在data中设置的flag是false
			this.flag = this.$route.path==='/home' ? false : true
		},
		methods: {
			goBack() {
				// 点击后退
				this.$router.go(-1)
			}
		},
		watch: {
			// 监听路由的变化
			// 注意 键名中有. 需要加引号 否则会报错
			'$route.path': function(newVal) {
				if(newVal === '/home') {
					this.flag = false
				}else{
					this.flag = true
				}
			} 
		}
	}
</script>

<style lang="scss" scoped>
	.mint-header{
		z-index: 99;
	}
	.app-container{
		padding-top: 40px;
		padding-bottom: 50px;
		/*解决点击底部tabbar切换时  出现横向滚动条的问题*/
		/*注意： 这里overflow-y不能设为hidden   因为纵向滑动时需要滚动条*/
		overflow-x: hidden;
	}
	.v-enter{  /*入场动画开始之前的状态,即原状态 到 达到动画效果的时间段的起始点*/
		opacity: 0;
		/*设备的宽度*/
		transform: translateX(100%);
	}
	.v-leave-to{ /*是离场动画结束后的状态 即 动画效果还原到初始状态后的结束点*/
		opacity: 0;
		transform: translateX(-100%);
		position:absolute;
	}
	.v-enter-active,
	.v-leave-active{
		transition: all 0.5s ease;
	}

	/*改类名, 解决tab栏无法切换的问题  原来的类名是mui-tab-item 引入mui.js,初始化滑动控件之后导致的底部tab栏无法切换的问题是由于类名重复了，只能修改一个*/
	.mui-bar-tab .mui-tab-item-zyp.mui-active {
    	color: #007aff;
	}
	.mui-bar-tab .mui-tab-item-zyp {
	    display: table-cell;
	    overflow: hidden;
	    width: 1%;
	    height: 50px;
	    text-align: center;
	    vertical-align: middle;
	    white-space: nowrap;
	    text-overflow: ellipsis;
	    color: #929292;
	}	
	.mui-bar-tab .mui-tab-item-zyp .mui-icon {
	    top: 3px;
	    width: 24px;
	    height: 24px;
	    padding-top: 0;
	    padding-bottom: 0;
	}
	.mui-bar-tab .mui-tab-item-zyp .mui-icon~.mui-tab-label {
	    font-size: 11px;
	    display: block;
	    overflow: hidden;
	    text-overflow: ellipsis;
	}
</style>